﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//Permite a utilização de anotações e validações
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc; 


namespace eXtremeEvents.Models
{
    /// <summary>
    /// Objecto/Classe que representa os utilizadores do sistema.
    /// Nesta tabela terá toda a informação de cada utilizador, nome, morada, contribuinte, evento que publica… 
    /// terá uma relação de um para muitos com a tabela Eventos, um utilizador poderá publicar vários eventos, 
    /// mas cada evento só poderá ser publicado por um utilizador.
    /// </summary>
    [Bind(Exclude = "UtilizadorID")]
    public class Utilizador
    {
        [ScaffoldColumn(false)]
        public int UtilizadorID { get; set; }
       
        [DisplayName("Nome")]
        [StringLength(90)]
        [Required(ErrorMessage="O nome é obrigatório.")]
        public string Nome { get; set; }
       
        [DisplayName("Apelido")]
        [StringLength(90)]
        [Required(ErrorMessage = "O apelido é obrigatório.")]
        public string Apelido { get; set; }
        
        [DisplayName("Nome da organização/Empresa")]
        [StringLength(250)]
        [Required(ErrorMessage = "O nome da organização é obrigatório.")]
        public string NomeOrganizacao { get; set; }
        
        [DisplayName("Endereço")]
        [StringLength(250)]
        public string Endereco { get; set; }

        [DisplayName("Código postal")]
        [StringLength(9)]
        public string CodigoPostal { get; set; }

        [DisplayName("Email")]
        [StringLength(50)]
        [Required(ErrorMessage = "O Email é obrigatório.")]
        public string Email { get; set; }

        [DisplayName("NIF")]
        [Required(ErrorMessage = "O NIF é obrigatório.")]
        public int NIF { get; set; }
        
        public List<Evento> Eventos { get; set; }
    }

}